﻿// 702 差分练习.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


using namespace std;
/*
http://oj.daimayuan.top/course/22/problem/285


给一个数列 a1,a2,…,an。

要求支持 q个操作，每次会给一段区间 [l,r]，将 al,al+1,…,ar 全都加上 1。

问最后整个数列会变成什么样。

输入格式
第一行两个整数 n,q。

接下来一行 n个整数 a1,a2,…,an。

接下来 q 行，每行两个整数 l,r。

输出格式
输出一行 n个整数，表示答案。

样例输入
5 3
1 2 3 4 5
1 3
2 4
3 5
样例输出
2 4 6 6 6
数据规模
对于 100% 的数据，保证 1≤n,q≤105,1≤ai≤105,1≤l≤r≤n
*/


const int N = 100010;
int a[N], b[N];
int l, r, n, m;



int main()
{
	cin >> n >> m;

	for (int i = 1; i <= n; i++) { cin >> a[i]; }
	for (int i = 1; i <= n; i++) { b[i] = a[i] - a[i - 1]; }

	for (int i = 0; i < m; i++) {
		cin >> l >> r;
		b[l] += 1;
		b[r + 1] -= 1;
	}

	for (int i = 1; i <= n; i++) {
		b[i] += b[i - 1];
		cout << b[i] << " ";
	}


	return 0;
}

 